// 普通生成函数
// 面值为 1,2，5 的硬币分别有 a1，a2，a3 枚，
// 问用这些硬币不能组成的最小面值是多少？
// 测试链接 ：https://acm.hdu.edu.cn/showproblem.php?pid=1085
// 相关帖子 ：https://www.cnblogs.com/dx123/p/16882142.html
// 相关帖子 ：https://oi-wiki.org/math/poly/ogf/
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

int n, a[4], b[4];
int C[8005], D[8005];

void compute(int m)
{
    for(int i = 0; i <= m; ++i) C[i] = D[i] = 0;
    for(int i = 0; i <= a[1]; ++i) C[i] = 1;
    for(int i = 2; i <= 3; ++i)
    {
        for(int j = 0; j <= m; ++j)
        {
            // a[i] * b[i] ：第 i 种硬币能够凑成的最大面值
            for(int k = 0; k <= a[i] * b[i] && j + k <= m; k += b[i])
            {
                D[j + k] += C[j];
            }
        }
        for(int j = 0; j <= m; ++j)
        {
            C[j] = D[j];
            D[j] = 0;
        }
    }
}

int main()
{
    while(scanf("%d%d%d", &a[1], &a[2], &a[3]) && (a[1] || a[2] || a[3]))
    {
        b[2] = 2, b[3] = 5;
        // m 为最大幂次，也就是能够所有硬币能够凑成的最大面值
        int m = a[1] * 1 + a[2] * 2 + a[3] * 5;
        compute(m);
        int x = 1;
        // 第一个系数为 0 的幂次就是无法凑成的最小面值
        while(x <= m && C[x]) ++x;
        printf("%d\n", x);
    }

    return 0;
}